<!DOCTYPE html>
<title>Badging: Unsupported values</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
  promise_test(async (t) => {
    await promise_rejects_js(
      t,
      TypeError,
      navigator.setAppBadge(-1),
      "Reject with TypeError if the value is negative"
    );
    await promise_rejects_js(
      t,
      TypeError,
      navigator.setAppBadge(Number.MAX_SAFE_INTEGER + 1),
      "Reject with TypeError if the value is larger than the maximum safe integer (2^53 - 1)"
    );
    await promise_rejects_js(
      t,
      TypeError,
      navigator.setAppBadge(Infinity),
      "Reject with TypeError if the value is positive infinity"
    );
    await promise_rejects_js(
      t,
      TypeError,
      navigator.setAppBadge(-Infinity),
      "Reject with TypeError if the value is negative infinity"
    );
    await promise_rejects_js(
      t,
      TypeError,
      navigator.setAppBadge(NaN),
      "Reject with TypeError if the value is NaN"
    );
    await promise_rejects_js(
      t,
      TypeError,
      navigator.setAppBadge("Foo"),
      'Reject with TypeError if the value cannot be converted to a long: string'
    );
    await promise_rejects_js(
      t,
      TypeError,
      navigator.setAppBadge({}),
      "Reject with TypeError if the value cannot be converted to a long: object"
    );
  }, "Test various invalid input cases for setAppBadge()");
</script>
